home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SNNSV32.ZIP / SNNSv3.2 / kernel / sources / func_tbl.c < prev    next >
C/C++ Source or Header  |  1994-04-25  |  16KB  |  297 lines

  1. /*****************************************************************************
  2.   FILE           : func_tbl.c
  3.   SHORTNAME      : 
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        : SNNS-Kernel Function table
  7.   NOTES          :
  8.  
  9.   AUTHOR         : Niels Mache
  10.   DATE           : 25.06.90
  11.  
  12.   CHANGED BY     : Sven Doering, Michael Vogt, Ralf Huebner
  13.   IDENTIFICATION : @(#)func_tbl.c    1.39 3/21/94
  14.   SCCS VERSION   : 1.39
  15.   LAST CHANGE    : 3/21/94
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20. #include <stdio.h>
  21.  
  22. #include "kr_typ.h"        /*    Kernel Types and Constants  */
  23. #include "kr_const.h"       /*  Constant Declarators for SNNS-Kernel  */
  24. #include "learn_f.h"
  25. #include "init_f.h"
  26. #include "trans_f.h"
  27. #include "update_f.h"
  28. #include "arttr_f.h"
  29. #include "tbl_func.h"
  30. #include "kr_td.h"
  31. #include "cc_learn.h"
  32. #include "rcc_learn.h"
  33. #include "dlvq_learn.h"
  34. #include "func_tbl.ph"
  35.  
  36. /*  The function table contains 5 entries:
  37.      - the XGUI-Identifier of this function (a pointer to a string constant),
  38.        note that the identifier have to match [A-Za-z]^[|, ]* (i.e. the first
  39.        character of the symbol must be a letter and all other characters must
  40.        not match [|, ])
  41.  
  42.      - an integer constant that determine the class of the function.
  43.        7 different classes are possible:
  44.        OUT_FUNC, ACT_FUNC, ACT_DERIV_FUNC, SITE_FUNC, UPDATE_FUNC, LEARN_FUNC
  45.        and INIT_FUNC
  46.  
  47.      - the number of input parameters for this function (only needed for Update,
  48.        Init and Learning functions)
  49.  
  50.      - the number of output parameters returned by this function (only needed
  51.        for Update and Learning functions)
  52.  
  53.      - a pointer to the (user defined) function.
  54. */
  55.  
  56. /*  *********************************************************************  */
  57.  
  58. /*  Here is the function table
  59. */
  60. struct FuncTable  kernel_func_table[]    =
  61.   {
  62.  
  63. /*  Output functions  */
  64. /*  In 'kr_const.h' is defined that the NULL-pointer presents the
  65.     identity function. So the "Out_Identity" function is represented
  66.     by the NULL-pointer instead of the function pointer.
  67. */
  68. /*  This is the DEFAULT FUNCTION  */
  69. {"Out_Identity",     OUT_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) OUT_IDENTITY},
  70.  
  71. {"Out_Threshold05",  OUT_FUNC, 0, 0, (FunctionPtr) OUT_Threshold05},
  72. {"Out_Clip_01",      OUT_FUNC, 0, 0, (FunctionPtr) OUT_Clip_01},
  73. {"Out_Clip_11",      OUT_FUNC, 0, 0, (FunctionPtr) OUT_Clip_11},
  74. {"Out_ART2_Noise_PLin", OUT_FUNC, 0, 0, (FunctionPtr) OUT_ART2_Noise_PLin},
  75. {"Out_ART2_Noise_ContDiff", OUT_FUNC, 0, 0, (FunctionPtr) OUT_ART2_Noise_ContDiff},
  76.  
  77. /*  Activation functions  */
  78. /*  This is the DEFAULT FUNCTION  */
  79. {"Act_Logistic",     ACT_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) ACT_Logistic},
  80. {"Act_Elliott",      ACT_FUNC, 0, 0, (FunctionPtr) ACT_Elliott},
  81. {"Act_BSB",          ACT_FUNC, 0, 0, (FunctionPtr) ACT_BSBFunction},
  82. {"Act_TanH",         ACT_FUNC, 0, 0, (FunctionPtr) ACT_TanHFunction},
  83. {"Act_TanHPlusBias", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TanHFunctionPlusBias},
  84. {"Act_TanH_Xdiv2",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_TanHFunction_Xdiv2},
  85. {"Act_Perceptron",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_Perceptron},
  86. {"Act_Signum",       ACT_FUNC, 0, 0, (FunctionPtr) ACT_Signum},
  87. {"Act_Signum0",      ACT_FUNC, 0, 0, (FunctionPtr) ACT_Signum0},
  88. {"Act_StepFunc",     ACT_FUNC, 0, 0, (FunctionPtr) ACT_StepFunction},
  89. {"Act_HystStep",     ACT_FUNC, 0, 0, (FunctionPtr) ACT_HystStepFunction},
  90. {"Act_BAM",          ACT_FUNC, 0, 0, (FunctionPtr) ACT_BAMFunction},
  91. {"Logistic_notInhibit" , ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticI},
  92. {"Act_MinOutPlusWeight", ACT_FUNC, 0, 0, (FunctionPtr) ACT_MinOutPlusWeight},
  93. {"Act_Identity",     ACT_FUNC, 0, 0, (FunctionPtr) ACT_Linear},
  94. {"Act_IdentityPlusBias", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Linear_bias},
  95. {"Act_LogisticTbl",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticTbl},
  96. {"Act_RBF_Gaussian", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Gaussian},
  97. {"Act_RBF_MultiQuadratic", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Multiquadratic},
  98. {"Act_RBF_ThinPlateSpline", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Thinplatespline},
  99. {"Act_less_than_0",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_less_than_0},
  100. {"Act_at_most_0",    ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_most_0},
  101. {"Act_at_least_2",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_least_2},
  102. {"Act_at_least_1",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_least_1},
  103. {"Act_exactly_1",    ACT_FUNC, 0, 0, (FunctionPtr) ACT_exactly_1},
  104. {"Act_Product",      ACT_FUNC, 0, 0, (FunctionPtr) ACT_Product},
  105.  
  106. {"Act_ART1_NC",      ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART1_NC},
  107. {"Act_ART2_Identity",ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Linear},
  108. {"Act_ART2_NormP",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormP},
  109. {"Act_ART2_NormV",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormV},
  110. {"Act_ART2_NormW",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormW},
  111. {"Act_ART2_NormIP",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormIP},
  112. {"Act_ART2_Rec",     ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Rec},
  113. {"Act_ART2_Rst",     ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Rst},
  114. {"Act_ARTMAP_NCa",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_NCa},
  115. {"Act_ARTMAP_NCb",   ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_NCb},
  116. {"Act_ARTMAP_DRho",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_DRho},
  117. {"Act_RCC_Logistic",    ACT_FUNC, 1, 0, (FunctionPtr) ACT_RCC_Logistic},
  118. {"Act_RCC_LogisticSym", ACT_FUNC, 1, 0, (FunctionPtr) ACT_RCC_LogisticSym},
  119. {"Act_RCC_Tanh",        ACT_FUNC, 1, 0, (FunctionPtr) ACT_RCC_Tanh},
  120. {"Act_RCC_Linear",      ACT_FUNC, 1, 0, (FunctionPtr) ACT_RCC_Linear},
  121. {"Act_LogSym",          ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticSym},
  122. {"Act_TD_Logistic",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_TD_Logistic},
  123. {"Act_TD_Elliott",  ACT_FUNC, 0, 0, (FunctionPtr) ACT_TD_Elliott},
  124. {"Act_Euclid",       ACT_FUNC, 0, 0, (FunctionPtr) ACT_Euclid},
  125. {"Act_Component",    ACT_FUNC, 0, 0, (FunctionPtr) ACT_Component},
  126. {"Act_RM",         ACT_FUNC, 0, 0, (FunctionPtr) ACT_RM}, 
  127.  
  128.  
  129.  
  130. /*  Derivation functions of the activation functions
  131.     NOTE: The derivative function of the activation function MUST have
  132.       the same name as the belonging activation function.
  133. */
  134. {"Act_Logistic",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Logistic},
  135. {"Act_Elliott",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Elliott},
  136. {"Act_BSB",          ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_BSBFunction},
  137. {"Act_TanH",         ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TanHFunction},
  138. {"Act_TanHPlusBias", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TanHFunction},
  139. {"Act_TanH_Xdiv2",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TanHFunction_Xdiv2},
  140. {"Act_Perceptron",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  141. {"Act_Signum",       ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  142. {"Act_Signum0",      ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  143. {"Act_StepFunc",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  144. {"Act_HystStep",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  145. {"Act_BAM",          ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  146. {"Logistic_notInhibit",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  147. {"Act_MinOutPlusWeight", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  148. {"Act_Identity",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Identity},
  149. {"Act_IdentityPlusBias", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Identity},
  150. {"Act_LogisticTbl",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Logistic},
  151. {"Act_RBF_Gaussian", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Gaussian},
  152. {"Act_RBF_MultiQuadratic", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Multiquadratic},
  153. {"Act_RBF_ThinPlateSpline", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Thinplatespline},
  154. {"Act_less_than_0",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  155. {"Act_at_most_0",    ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  156. {"Act_at_least_1",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  157. {"Act_at_least_2",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  158. {"Act_exactly_1",    ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  159. {"Act_Product",      ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  160.  
  161. {"Act_ART1_NC",      ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  162. {"Act_ART2_Identity",ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  163. {"Act_ART2_NormP",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  164. {"Act_ART2_NormV",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  165. {"Act_ART2_NormW",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  166. {"Act_ART2_NormIP",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  167. {"Act_ART2_Rec",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  168. {"Act_ART2_Rst",     ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  169. {"Act_ARTMAP_NCa",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  170. {"Act_ARTMAP_NCb",   ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  171. {"Act_ARTMAP_DRho",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  172. {"Act_RCC_Logistic",    ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Logistic},
  173. {"Act_RCC_LogisticSym", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_LogisticSym},
  174. {"Act_RCC_Tanh",        ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_tanh},
  175. {"Act_RCC_Linear",      ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Identity},
  176. {"Act_LogSym",          ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_LogisticSym},
  177. {"Act_TD_Logistic",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TD_Logistic},
  178. {"Act_TD_Elliott",  ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TD_Elliott},
  179. {"Act_Euclid",       ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  180. {"Act_Component",    ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
  181. {"Act_RM",           ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy}, 
  182.  
  183.  
  184. /*  Site functions  */
  185. {"Site_WeightedSum", SITE_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) SITE_WeightedSum},
  186. {"Site_Pi",          SITE_FUNC, 0, 0, (FunctionPtr) SITE_ProductA},
  187. {"Site_Produkt",     SITE_FUNC, 0, 0, (FunctionPtr) SITE_Product},
  188. {"Site_Max",         SITE_FUNC, 0, 0, (FunctionPtr) SITE_Max},
  189. {"Site_Min",         SITE_FUNC, 0, 0, (FunctionPtr) SITE_Min},
  190. {"Site_at_least_2",  SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_least_2},
  191. {"Site_at_least_1",  SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_least_1},
  192. {"Site_at_most_0",   SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_most_0},
  193. {"Site_Reciprocal",  SITE_FUNC, 0, 0, (FunctionPtr) SITE_Reciprocal_WeightedSum},
  194.  
  195. /*  Update functions  */
  196. /*  This is the DEFAULT FUNCTION  */
  197. {"Topological_Order", UPDATE_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) UPDATE_topologicalPropagate},
  198.  
  199. {"Kohonen_Order",     UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_KohonenPropagate},
  200. {"Serial_Order",      UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_serialPropagate},
  201. {"ART1_Synchronous",  UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART1_syncPropagate},
  202. {"Synchonous_Order",  UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_syncPropagate},
  203. {"Hopfield_Synchronous",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_syncPropagateHop},
  204. {"Hopfield_Fixed_Act",  UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_FixAct_Hop},
  205. {"ART1_Stable",       UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART1_Propagate},
  206. {"Random_Order",      UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_randomOrderPropagate},
  207. {"ART2_Synchronous",  UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART2_syncPropagate},
  208. {"Random_Permutation",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_randomPermutPropagate},
  209. {"ART2_Stable",       UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART2_Propagate},
  210. {"ARTMAP_Synchronous",UPDATE_FUNC, 3, 0, (FunctionPtr) UPDATE_ARTMAP_syncPropagate},
  211. {"CounterPropagation",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_CPNPropagate},
  212. {"ARTMAP_Stable",     UPDATE_FUNC, 3, 0, (FunctionPtr) UPDATE_ARTMAP_Propagate},
  213. {"CC_Order",          UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_CC_Propagate},
  214. {"Dynamic_LVQ",       UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_DLVQ_Propagate},
  215. {"RCC_Order",         UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_RCC_Propagate},
  216. {"TimeDelay_Order",   UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_TimeDelayPropagate},
  217. {"BPTT_Order",        UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_BPTT},
  218. {"BAM_Order",         UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_BAM},
  219. {"JE_Order"  ,        UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_JE_Propagate},
  220. {"JE_Special",        UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_JE_Special},
  221. {"Auto_Synchronous",    UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_RM_Propagate},
  222.  
  223. /*  Leaning Functions  */
  224. /*  This is the DEFAULT FUNCTION  */
  225. {"Std_Backpropagation", LEARN_FUNC | DEFAULT_FUNC, 2, 1, (FunctionPtr) LEARN_backprop},
  226.  
  227. {"ART1",                LEARN_FUNC, 1, 0, (FunctionPtr) LEARN_ART1},
  228. {"BackpropBatch",       LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_backpropBatch},
  229. {"ART2",                LEARN_FUNC, 5, 0, (FunctionPtr) LEARN_ART2},
  230. {"BackpropMomentum",    LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_backpropMomentum},
  231. {"ARTMAP",              LEARN_FUNC, 3, 0, (FunctionPtr) LEARN_ARTMAP},
  232. {"TimeDelayBackprop",   LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_TDbackprop},
  233. {"BackPercolation",     LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_perc},
  234. {"Quickprop",           LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_quickprop},
  235. {"Counterpropagation",  LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_CPN},
  236. {"Rprop",               LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_rprop},
  237. {"RadialBasisLearning", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_RBF},
  238. {"Dynamic_LVQ",         LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_DLVQ},
  239. {"BPTT",                LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_BPTT},
  240. {"CC",                  LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_CasCor},
  241. {"BBPTT",               LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_BBPTT},
  242. {"RCC",                 LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_RecCasCor},
  243. {"QPTT",                LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_QPTT},
  244. {"Kohonen",             LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_kohonen},
  245. {"JE_BP",               LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_JE_Backprop},
  246. {"JE_BP_Momentum",      LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_JE_BackpropMomentum},
  247. {"JE_Quickprop",        LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_JE_Quickprop},
  248. {"JE_Rprop",            LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_JE_Rprop},
  249. {"RM_delta",            LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_RM_delta},
  250. {"Hebbian",             LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_HEBB},
  251.  
  252.  
  253. /*  Initialisation Functions  */
  254. /*  This is the DEFAULT FUNCTION  */
  255. {"Randomize_Weights",   INIT_FUNC | DEFAULT_FUNC, 2, 0, (FunctionPtr) INIT_randomizeWeights},
  256.  
  257. {"Random_Weights_Perc", INIT_FUNC, 2, 0, (FunctionPtr) INIT_randomizeWeights_perc},
  258. {"CPN_Weights",         INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_CPN},
  259. {"RBF_Weights",         INIT_FUNC, 5, 0, (FunctionPtr) INIT_RBF_Weights},
  260. {"RBF_Weights_Redo",    INIT_FUNC, 5, 0, (FunctionPtr) INIT_RBF_Weights_redo},
  261. {"RBF_Weights_Kohonen", INIT_FUNC, 4, 0, (FunctionPtr) INIT_RBF_Weights_kohonen},
  262. {"ART1_Weights",        INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_ART1},
  263. {"ART2_Weights",        INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_ART2},
  264. {"ARTMAP_Weights",      INIT_FUNC, 4, 0, (FunctionPtr) INIT_Weights_ARTMAP},
  265. {"CC_Weights",          INIT_FUNC, 2, 0, (FunctionPtr) INIT_CC_Weights},
  266. {"RCC_Weights",         INIT_FUNC, 2, 0, (FunctionPtr) INIT_RCC_Weights},
  267. {"DLVQ_Weights",        INIT_FUNC, 2, 0, (FunctionPtr) INIT_CC_Weights},
  268. {"KOHONEN_Weights",     INIT_FUNC, 2, 0, (FunctionPtr) INIT_SOM_Weights},
  269. {"JE_Weights",          INIT_FUNC, 5, 0, (FunctionPtr) INIT_JE_Weights},
  270. {"Hebb",                INIT_FUNC, 2, 0, (FunctionPtr) INIT_Hebb}, 
  271. {"ClippHebb",           INIT_FUNC, 2, 0, (FunctionPtr) INIT_ClippHebb},
  272. {"Hebb_Fixed_Act",      INIT_FUNC, 2, 0, (FunctionPtr) INIT_HOP_FixAct},
  273. {"PseudoInv",           INIT_FUNC, 0, 0, (FunctionPtr) INIT_PseudoInv},
  274. {"RM_Random_Weights",   INIT_FUNC, 2, 0, (FunctionPtr) INIT_RM_randomizeWeights},
  275.  
  276.  
  277.   };
  278.  
  279.  
  280. /*  Define the function table size
  281. */
  282. const int  NoOfKernelFuncs = (sizeof (kernel_func_table) / sizeof (struct FuncTable));
  283. /*  **********************************************************************  */
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.